Composite infrastructures intended for use with computer systems oftentimes have an information architecture environment having interconnected complex object nodes. Each object node may have independent tree-like structures comprising hierarchies of interconnected complex subordinate object nodes of information wherein each subordinate object node may further comprise independent sub-tree structures of interconnected sub-nodes of information.
Computer systems using infrastructures may run processes wherein the processes are required to concurrently access an infrastructure. In particular, a computer system may run a number of processes each of which requires access to a complex infrastructure comprising data base architectures. A process may require access to one, several or all of the infrastructure nodes many times during the running of the process. In order to insure continuity of operation, a process may apply an exclusive lock against a node that will operate against the node and impliedly against all the lower hierarchical subordinate and sub-nodes in the tree structure of the node to allow only the process holding the exclusive lock to write into and read information from the node. In addition, all ancestor nodes of the node assigned an exclusive lock are assigned an intermediate exclusive lock to ensure a consistency of data. During the time that a process holds the exclusive lock, other processes concurrently running on computers served by the complex infrastructure are prevented from writing into and reading information from the node, the ancestor nodes and child nodes located in the tree structure of the node to which the exclusive lock was applied. A process may also apply a share lock against a node and an intermediate share lock against ancestor nodes of the share locked node that allows the process and other processes to only read information from the nodes and which share lock operates to prevent a process from applying an exclusive lock thereto.
A problem arises during concurrent operation of multiple processes in that when one process exclusively locks a node other processes that require access to ancestor and children nodes of the exclusively locked node must wait until the exclusive lock is removed from the node. Similarly, an intermediate share lock applied to ancestral nodes of a share locked node prevents other processes from applying an exclusive lock to the ancestral nodes until such time as the intermediate share lock is removed. Another problem arises in that a running process required to apply either an exclusive or share lock to an ancestral or child node of a previously locked node may be halted when concurrently running processes apply locks before the running process can execute the appropriate command.